A typical microprocessor (MCU) timer architecture is known from the Motorola '05 family of MCU's (the MC146805E2, 'F2, 'G2, 'H2) manufactured by Motorola, Inc. of 1303 East Algonquin Road, Schaumburg, Ill. 60196, USA. This general purpose timer always counts down and creates an interrupt when the timer reaches zero. A value may be loaded into the timer so that the interrupt will come at some known time. Each time the timer reaches zero or "times out", it is necessary for the processor to reload the appropriate value for the next time period Thus, this type of tier is undesirable in many applications, such as multi-tasking MCU's or serial data acquisition in pagers, because it requires a significant amount of processor overhead time to keep providing the precise, repeating time interval. The maintenance of the time intervals by the microprocessor becomes larger when the time interval varies according to the priority of a particular task to be processed when used for multi-tasking MCU's because additional processor time is required to calculate the appropriate timer value. The processor overhead problem becomes critical when the tasks must be swapped at a high rate.
A common solution is to use a single modulo timer. In this type of timer, the processor can set the timer for the desired time interval and the timer will automatically reload this value when it times out. This eliminates much of the processor overhead. However, when the data rate changes with time, the modulo timer must be reconfigured accordingly. This often results in missed or distorted time intervals during the transition period. This problem is particularly acute in applications which must operate in real time.